variable separable method